'use strict';
const dayjs = require("dayjs");
const {getDefaultModelConfig} = require("../../utils/common");
const { formatDate } = require("../../utils/index");

module.exports = app => {
    const { STRING, INTEGER, DATE, TINYINT, TEXT } = app.Sequelize;
    return app.model.define(
        'HousingPurchaseSubsidy',
        {
            id: {type: INTEGER, primaryKey: true, autoIncrement: true},
            name: STRING(50), // 姓名
            gender: {type: STRING, defaultValue: '', comment: '性别：男，女'}, // 性别
            birth_date: {
                type: DATE,
                get() {
                    return formatDate(this.getDataValue('birth_date'), 'YYYY-MM-DD');
                }
            }, // 出生年月
            household_location: STRING(255), // 户籍所在地
            id_card: STRING(18), // 身份证号
            phone: STRING(11), // 联系电话
            marital_status: {type: STRING, defaultValue: '', comment: '婚姻状况：未婚、已婚、离异'}, // 婚姻状况
            education: STRING(50), // 学历
            work_start_date: {
                type: DATE,
                get() {
                    return formatDate(this.getDataValue('work_start_date'), 'YYYY-MM-DD');
                }
            }, // 参加工作时间
            co_applicant: STRING(100), // 共同申领人及关系
            work_unit: STRING(200), // 工作单位
            status: {type: TINYINT, defaultValue: 0, comment: '审核状态：0-待审核，1-审核通过，2-审核拒绝'}, // 审核状态
            review_remark: TEXT, // 审核备注
            reviewer: STRING(50), // 审核人
            ...getDefaultModelConfig(app)
        },
        {
            tableName: 'housing_purchase_subsidy',
            timestamps: true,
            createdAt: 'create_time',
            updatedAt: 'update_time'
        }
    );
};
